package gob.cgr.web.sgrh.service;

import gob.cgr.sgrh.ejb.entidad.ActaEntrega;
import gob.cgr.sgrh.ejb.entidad.AdmGrado;
import gob.cgr.sgrh.ejb.entidad.Ambito;
import gob.cgr.sgrh.ejb.entidad.Cargo;
import gob.cgr.sgrh.ejb.entidad.CondicionEstudio;
import gob.cgr.sgrh.ejb.entidad.CumplimientoDocumentacion;
import gob.cgr.sgrh.ejb.entidad.DatoFamiliar;
import gob.cgr.sgrh.ejb.entidad.Docencia;
import gob.cgr.sgrh.ejb.entidad.Documento;
import gob.cgr.sgrh.ejb.entidad.EstudioBasico;
import gob.cgr.sgrh.ejb.entidad.EstudioProfesional;
import gob.cgr.sgrh.ejb.entidad.FormacionLaboral;
import gob.cgr.sgrh.ejb.entidad.Legajo;
import gob.cgr.sgrh.ejb.entidad.Maestra;
import gob.cgr.sgrh.ejb.entidad.MovimientoDePersonal;
import gob.cgr.sgrh.ejb.entidad.Persona;
import gob.cgr.sgrh.ejb.entidad.Personal;
import gob.cgr.sgrh.ejb.entidad.Puesto;
import gob.cgr.sgrh.ejb.entidad.PuestoCapacitacion;
import gob.cgr.sgrh.ejb.entidad.PuestoEducacion;
import gob.cgr.sgrh.ejb.entidad.SeccionLegajo;
import gob.cgr.sgrh.ejb.entidad.SolicitudDocumento;
import gob.cgr.sgrh.ejb.entidad.SolicitudLegajo;
import gob.cgr.sgrh.ejb.entidad.UnidadOrganica;
import gob.cgr.sgrh.ejb.entidad.Usuario;
import gob.cgr.sgrh.ejb.remote.SigerhRemote;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.naming.Context;
import javax.naming.NamingException;

public class SigerhServiceImpl implements SigerhService {

	private static final SigerhRemote service=cargarServicioSigerh();
	
	
		public SigerhServiceImpl() {
	// TODO Auto-generated constructor stub
			
		}

	private static SigerhRemote cargarServicioSigerh(){
		try {
			final Context context;
			context = JNDILookupClass.getInitialContext();
			SigerhRemote servicioSigerh;
			servicioSigerh=(SigerhRemote)context
					.lookup("java:module/SigerhService!gob.cgr.sgrh.ejb.remote.SigerhRemote");
			System.out.println("loaded sigerh Service " + servicioSigerh);
			
			return servicioSigerh;
			
		} catch (NamingException e) {
			System.out.println("!Error al cargar el servico EJB*********************");
			e.printStackTrace();
			return null;
		}
		
	}
	
	
	@Override
	public List<Ambito> getDepartamentos() {
		// TODO Auto-generated method stub
		return service.getDepartamentos();
	}

	@Override
	public List<Ambito> getAmbitosByPdr(int ambCod) {
		// TODO Auto-generated method stub
		return service.getAmbitosByPdr(ambCod);
	}

	@Override
	public Personal registrarPersonal(Personal personal) {
		// TODO Auto-generated method stub
	return	service.registrarPersonal(personal);
	}

	@Override
	public Ambito getAmbito(int ambCod) {
		// TODO Auto-generated method stub
		return service.getAmbito(ambCod);
	}

	@Override
	public List<Personal> buscarPersonal(Personal p) {
		// TODO Auto-generated method stub
		return service.buscarPersonal(p);
	}

	@Override
	public void actualizarPersonal(Personal personal) {
		// TODO Auto-generated method stub
		service.actualizarPersonal(personal);
	}

	@Override
	public Persona buscarPersona(String dni) {
		// TODO Auto-generated method stub
		return service.buscarPersona(dni);
	}

	@Override
	public void agregarFamiliar(DatoFamiliar dato) {
		// TODO Auto-generated method stub
		service.agregarFamiliar(dato);
	}

	@Override
	public void agregarEstudiosBasicos(EstudioBasico ebasico) {
		// TODO Auto-generated method stub
		service.agregarEstudiosBasicos(ebasico);
	}

	@Override
	public void agregarEstudiosProfesionales(EstudioProfesional eprof) {
		// TODO Auto-generated method stub
		service.agregarEstudiosProfesionales(eprof);
	}
	
	@Override
	public List<Maestra> listarTiposParentezco() {
		// TODO Auto-generated method stub
		return service.listarTiposParentezco();
	}
	@Override
	public Personal cargarDatosCompletos(Personal p) {
		// TODO Auto-generated method stub
		return service.cargarDatosCompletos(p);
	}
	@Override
	public void quitarEstudiosBasicos(EstudioBasico ebasico) {
		// TODO Auto-generated method stub
		service.quitarEstudiosBasicos(ebasico);
	}
	@Override
	public void quitarEstudiosProfesionales(EstudioProfesional eprof) {
		// TODO Auto-generated method stub
		service.quitarEstudiosProfesionales(eprof);
	}
	@Override
	public void quitarFamiliar(DatoFamiliar dato) {
		// TODO Auto-generated method stub
		service.quitarFamiliar(dato);
	}
	@Override
	public void agregarFormacionLaboral(FormacionLaboral formacion) {
		// TODO Auto-generated method stub
		service.agregarFormacionLaboral(formacion);
	}
	@Override
	public void quitarFormacionLaboral(FormacionLaboral formacion) {
		// TODO Auto-generated method stub
		service.quitarFormacionLaboral(formacion);
	}
	@Override
	public List<CondicionEstudio> listarCondicionEstudios() {
		// TODO Auto-generated method stub
		return service.listarCondicionEstudios();
	}
	@Override
	public List<AdmGrado> listarGradosAcademicos() {
		// TODO Auto-generated method stub
		return service.listarGradosAcademicos();
	}

	@Override
	public List<Documento> listarDocumentosDeSolicitud() {
		// TODO Auto-generated method stub
		return service.listarDocumentosDeSolicitud();
	}

	@Override
	public List<Documento> listarDocumentosObligatorios() {
		// TODO Auto-generated method stub
		return service.listarDocumentosObligatorios();
	}
	
	@Override
	public void registrarSolicitudDocumento(SolicitudDocumento sol) {
		// TODO Auto-generated method stub
		service.registrarSolicitudDocumento(sol);
	}
	@Override
	public SolicitudDocumento actualizarSolicitudDocumento(SolicitudDocumento sol){
		return service.actualizarSolicitudDocumento(sol);
	}
	
	@Override
	public Usuario validarUsuario(Usuario user) {
		// TODO Auto-generated method stub
		return service.validarUsuario(user);
	}
	@Override
	public Personal buscarPersonalPorDNI(String dni) {
		// TODO Auto-generated method stub
		return service.buscarPersonalPorDNI(dni);
	}
	@Override
	public List<SolicitudDocumento> listarConsultaSolicitudes(
			Integer idPersonal, Date desde, Date hasta, String estado) {
		// TODO Auto-generated method stub
		return service.listarConsultaSolicitudes(idPersonal, desde, hasta, estado);
	}

	@Override
	public List<CumplimientoDocumentacion> listarCumplimiento(Persona p) {
		// TODO Auto-generated method stub
		return service.listarCumplimiento(p);
	}

	@Override
	public void actualizarCumplimientoDocumentacion(
			List<CumplimientoDocumentacion> documentacion) {
		// TODO Auto-generated method stub
		service.actualizarCumplimientoDocumentacion(documentacion);
		
	}
	@Override
	public List<Puesto> listarPuestos(Integer idCargo) {
		// TODO Auto-generated method stub
		return service.listarPuestos(idCargo);
	}
	@Override
	public List<UnidadOrganica> listarUnidadesOrganicas() {
		// TODO Auto-generated method stub
		return service.listarUnidadesOrganicas();
	}
	@Override
	public List<Cargo> listarCargos() {
		// TODO Auto-generated method stub
		return service.listarCargos();
	}
	@Override
	public List<MovimientoDePersonal> listarMovimientosPersonal(
			Integer idPersonal) {
		// TODO Auto-generated method stub
		return service.listarMovimientosPersonal(idPersonal);
	}
@Override
	public void actualizarMovimientoPersonal(MovimientoDePersonal movimiento) {
		// TODO Auto-generated method stub
		service.actualizarMovimientoPersonal(movimiento);
	}

@Override
public void agregarDocencia(Docencia docencia) {
	// TODO Auto-generated method stub
	service.agregarDocencia(docencia);
}

@Override
public void quitarDocencia(Docencia docencia) {
	// TODO Auto-generated method stub
	service.quitarDocencia(docencia);
}

@Override
public List<Docencia> listarDocencias(Integer idPersona) {
	// TODO Auto-generated method stub
	return service.listarDocencias(idPersona);
}

@Override
public List<SeccionLegajo> listarSeccionesLegajo() {
	// TODO Auto-generated method stub
	return service.listarSeccionesLegajo();
}

@Override
public List<Legajo> listarLegajoPersonal(Integer idPersonal,
		Integer seccionLegajo) {
	// TODO Auto-generated method stub
	return service.listarLegajoPersonal(idPersonal, seccionLegajo);
}

@Override
public void actualizarLegajo(Legajo legajo) {
	// TODO Auto-generated method stub
	service.actualizarLegajo(legajo);
}

@Override
public void eliminarLegajo(Legajo legajo) {
	// TODO Auto-generated method stub
	service.eliminarLegajo(legajo);
	}

@Override
public List<Documento> listarDocumentosPorTipo(String tipo) {
	// TODO Auto-generated method stub
	return service.listarDocumentosPorTipo(tipo);
}

@Override
public Legajo obtenerLegajo(Integer idLegajo) {
	// TODO Auto-generated method stub
	return service.obtenerLegajo(idLegajo);
}
@Override
public void actualizarCumplimientoDocumentacion(
		CumplimientoDocumentacion documentacion) {
	// TODO Auto-generated method stub
	service.actualizarCumplimientoDocumentacion(documentacion);
}

@Override
public void solicitarActualizarLegajo(SolicitudLegajo s, Legajo l) {
	// TODO Auto-generated method stub
	service.solicitarActualizarLegajo(s, l);
}

@Override
public void eliminarSolicitudLegajo(SolicitudLegajo s) {
	// TODO Auto-generated method stub
	service.eliminarSolicitudLegajo(s);
}
@Override
public List<SolicitudLegajo> listarSolicitudesDeLegajo(Integer idPersona,
		Date desde, Date hasta, String estado) {
	// TODO Auto-generated method stub
	return service.listarSolicitudesDeLegajo(idPersona, desde, hasta, estado);
}
@Override
public SolicitudLegajo obtenerSolicitudLegajo(Integer idSolicitudLegajo) {
	// TODO Auto-generated method stub
	return service.obtenerSolicitudLegajo(idSolicitudLegajo);
}
@Override
public void actualizarSolicitudLegajo(SolicitudLegajo s) {
	// TODO Auto-generated method stub
service.actualizarSolicitudLegajo(s);	
}

@Override
public List<SeccionLegajo> listarSeccionesLegajoParaSolicitud() {
	// TODO Auto-generated method stub
	return service.listarSeccionesLegajoParaSolicitud();
}

@Override
public List<ActaEntrega> listarActasEntregas(Integer idPersonal,
		Date desde, Date hasta, String estado) {
	// TODO Auto-generated method stub
	return service.listarActasEntregas(idPersonal, desde, hasta, estado);
}

@Override
public ActaEntrega obtenerActaEntrega(Integer idActaEntrega) {
	// TODO Auto-generated method stub
	return service.obtenerActaEntrega(idActaEntrega);
}

@Override
public ActaEntrega registrarActaEntrega(ActaEntrega acta) {
	// TODO Auto-generated method stub
	return service.registrarActaEntrega(acta);
}

@Override
public ActaEntrega actualizarActaEntrega(ActaEntrega acta) {
	// TODO Auto-generated method stub
	return service.actualizarActaEntrega(acta);
}

@Override
public void eliminarActaEntrega(ActaEntrega acta) {
	// TODO Auto-generated method stub
	service.eliminarActaEntrega(acta);
}

@Override
public List<Maestra> listarMotivosActaEntrega() {
	// TODO Auto-generated method stub
	return service.listarMaestra("ACTA_ENTREGA","MOTIVO");
}
@Override
public UnidadOrganica actualizarUnidadOrganica(UnidadOrganica uo) {
	// TODO Auto-generated method stub
	return service.actualizarUnidadOrganica(uo);
}
@Override
public UnidadOrganica registrarUnidadOrganica(UnidadOrganica uo) {
	// TODO Auto-generated method stub
	return service.registrarUnidadOrganica(uo);
}
@Override
public UnidadOrganica obtenerUnidadOrganica(Integer uoId) {
	// TODO Auto-generated method stub
	return service.obtenerUnidadOrganica(uoId);
}

@Override
public Persona cargarPersonaCompleta(Integer idPersona) {
	// TODO Auto-generated method stub
	return service.cargarPersonaCompleta(idPersona);
}
@Override
public List<FormacionLaboral> listarFormacionLaboralPersona(
		Integer idPersona) {
	// TODO Auto-generated method stub
	return service.listarFormacionLaboralPersona(idPersona);
}

@Override
public List<Puesto> listarPuestosPorUnidadOrganica(Integer idUnidadOrganica) {
	// TODO Auto-generated method stub
	return service.listarPuestosPorUnidadOrganica(idUnidadOrganica);
}

@Override
public Puesto registrarPuesto(Puesto puesto) {
	// TODO Auto-generated method stub
	return service.registrarPuesto(puesto);
}

@Override
public Puesto actualizarPuesto(Puesto puesto) {
	// TODO Auto-generated method stub
	return service.actualizarPuesto(puesto);
}

@Override
public PuestoEducacion actualizarPuestoEducacion(PuestoEducacion pe) {
	// TODO Auto-generated method stub
	return service.actualizarPuestoEducacion(pe);
}

@Override
public PuestoCapacitacion actualizarPuestoCapacitacion(PuestoCapacitacion pe) {
	// TODO Auto-generated method stub
	return service.actualizarPuestoCapacitacion(pe);
}

@Override
public void eliminarPuestoEducacion(PuestoEducacion pe) {
	// TODO Auto-generated method stub
	service.eliminarPuestoEducacion(pe);
}

@Override
public void eliminarPuestoCapacitacion(PuestoCapacitacion pe) {
	// TODO Auto-generated method stub
	service.eliminarPuestoCapacitacion(pe);
}

@Override
public Puesto obtenerPuesto(Integer idPuesto) {
	// TODO Auto-generated method stub
	return service.obtenerPuesto(idPuesto);
}
}
